#ifndef _AUTODETECTSPEC_
#define _AUTODETECTSPEC_

#pragma once


#if defined(WIN32) || defined(WIN64)

// exposed AutoDetectSpec() helper functions for reuse in CrySystem
namespace Win32SysInspect
{
	void GetNumCPUCores(unsigned int& totAvailToSystem, unsigned int& totAvailToProcess);
	bool IsDX11Supported();
	void GetGPUInfo(char* pName, size_t bufferSize, unsigned int& vendorID, unsigned int& deviceID, unsigned int& totLocalVidMem, bool& supportsSM30orAbove);
	int GetGPURating(unsigned int vendorId, unsigned int deviceId);
	void GetOS(SPlatformInfo::EWinVersion& ver, bool& is64Bit, char* pName, size_t bufferSize);
	bool IsVistaKB940105Required();

	inline size_t SafeMemoryThreshold(size_t memMB)
	{
		return (memMB * 8) / 10;
	}
}

#endif // #if defined(WIN32) || defined(WIN64)


#endif // #ifndef _AUTODETECTSPEC_